# -*- coding: utf-8 -*-
__author__ = 'lztkdr'
__date__ = '2019/7/21 9:17'



import  os, sys,time

from scrapy.cmdline import execute

from GuaZi_Spider.items import CarItem

from utils import selenium_helper

from utils.pysql_helper import sql_helper

sys.path.append(os.path.dirname(os.path.abspath(__file__)))


# driver = selenium_helper.get_driver("http://httpbin.org/get",proxyHost="47.106.192.167:8000",autoOpenDevTools=True,device_type= selenium_helper.deviceType.PC,driver_type=selenium_helper.driverType.Firefox)
#
# time.sleep(60)
#
# driver.close()



#启动的爬虫名称

"""

SPIDER_NAME 注释其中一个，以便 运行 不同 scrapy 模板 的爬取方式。

guazi 实现以 输入关键字 进行爬取,目前 关键字 代码中写的固定，可以取消注释； 可以更改 构造函数中 mode 的值，以调整使用 scrapy 或者 scrapy+selenium 爬取。

更换成自己的代理：见 proxy.png 

mysql数据库连接 见：settings.py 底部。

"""

SPIDER_NAME = "guazi"

SPIDER_NAME = "guazi_crawl"

SPIDER_NAME = "guazi_redis"

# SPIDER_NAME = "guazi_redis_crawl"  # 该爬取方式的分布式，启动运行时，可能会导致出现  [WinError 10054] 远程主机强迫关闭了一个现有的连接。 可能是因为redis装在 windows 上的原因，redis 容易挂掉。

#执行scrapy命令行
execute(["scrapy", "crawl", SPIDER_NAME])

# split 传参写法：
# execute(f"scrapy crawl {SPIDER_NAME}".split())


# redis 命令：
# select 1
# lpush guazi_redis:start_urls "https://www.guazi.com/www/buy"

# select 1
# lpush guazi_redis_crawl:start_urls "https://www.guazi.com/www/buy"


# scrapy-redis 分布式，实践总结：
# 1. 带密码的redis连接字符串,写法：redis://[:password]@localhost:6379/0   ，密码前面要加上英文冒号，不然会报：redis.exceptions.AuthenticationError: Authentication required.
# 2. 如果用了带密码的redis，bloomfilter.py 文件中，redis.ConnectionPool 的地方，记得得传入redis密码。
# 3. RedisCrawlSpider 类型的爬虫，好像在启动后大量与redis交互，windows下的redis服务会自动断掉，然后程序会报异常，linux下的暂没试过。
# 4. RedisSpider类型的爬虫，没什么大问题，可以正常运行起来。




